This relates generally to graphics processing.
Rasterizing is a critical task in a graphics processing unit. Rasterization determines a list of triangle samples of a primitive. Because this is a frequently recurrent task, efficiency, reduced power consumption and small chip area are important.
Graphics features like multi-sampling anti-aliasing (MSAA) process more information without impacting the rendering time. To produce the final sample mask, a primitive (such as a triangle) is divided into different edges. A triangle is divided into three edges, each edge calculated independently and then the results of the three edges are merged to produce the mask.
To decide if a pixel is lit (actually used in on) or not, a 16×16 pixel input is split into 16 4×4 pixel subsets. Other sized pixel inputs and other sized pixel subsets can also be used.
A circuit evaluates each one of the 4×4 pixel subsets and checks if the 4×4 pixel subset is fully covered. “Fully covered” means that all pixels in the input are lit. It also checks to see if all pixels in the 4×4 subset are “void” because all 16 pixels are unlit. Finally it checks to see if the 4×4 subset is “partial” because some pixels are lit and some are not. There are 16 blocks that verify each one of the 4×4 pixel subsets. If there are four edges, then these are 64 4×4 pixel subsets (which may also be called blocks).